From 5cb822153a109a1538b99dddde8e9b5b7ab7cb79 Mon Sep 17 00:00:00 2001 From: "kaf24@labyrinth.cl.cam.ac.uk" Date: Sun, 16 Feb 2003 15:06:32 +0000 Subject: [PATCH] bitkeeper revision 1.56 (3e4fa8f8qFVqiOGx5RWgOayKOHE4qQ) blkdev.h, ll_rw_blk.c: Make block-device layer a bit more robust for non-existsent devices. --- xen-2.4.16/drivers/block/ll_rw_blk.c | 2 +- xen-2.4.16/include/xeno/blkdev.h | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/xen-2.4.16/drivers/block/ll_rw_blk.c b/xen-2.4.16/drivers/block/ll_rw_blk.c index 348b516c1d..ca8427e878 100644 --- a/xen-2.4.16/drivers/block/ll_rw_blk.c +++ b/xen-2.4.16/drivers/block/ll_rw_blk.c @@ -1122,7 +1122,7 @@ void generic_make_request (int rw, struct buffer_head * bh) */ do { q = blk_get_queue(bh->b_rdev); - if (!q) { + if (!q || !q->make_request_fn) { printk(KERN_ERR "generic_make_request: Trying to access " "nonexistent block-device %s (%ld)\n", diff --git a/xen-2.4.16/include/xeno/blkdev.h b/xen-2.4.16/include/xeno/blkdev.h index f5c1d25d75..312cc58678 100644 --- a/xen-2.4.16/include/xeno/blkdev.h +++ b/xen-2.4.16/include/xeno/blkdev.h @@ -123,11 +123,15 @@ static inline void mark_buffer_clean(struct buffer_head * bh) static inline void buffer_IO_error(struct buffer_head * bh) { - mark_buffer_clean(bh); - /* - * b_end_io has to clear the BH_Uptodate bitflag in the error case! - */ - bh->b_end_io(bh, 0); + extern void end_block_io_op(struct buffer_head *bh); + + mark_buffer_clean(bh); + /* + * b_end_io has to clear the BH_Uptodate bitflag in the error case! + */ + bh->b_end_io(bh, 0); + /* XXX KAF */ + end_block_io_op(bh); } /**** XXX END OF BUFFER_HEAD STUFF XXXX ****/ -- 2.30.2